package com.mcxx.modules.extremepoverty.service;

import com.mcxx.common.exception.BizException;
import com.mcxx.modules.miniSalvation.family.dto.*;
import com.mcxx.modules.miniSalvation.family.entity.MemberAssetsEntity;
import com.yinhai.ta404.core.security.vo.UserAccountVo;

import java.util.List;
import java.util.Map;


public interface ExSalvationApplyService {

    ApplyRtnDTO addSalvationRequest(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo) throws BizException;


    ApplyRtnDTO modifySalvationRequest(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo,String channel) throws BizException;


    ApplyRtnDTO houseHoldCancelSave(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo) throws BizException;


    ApplyRtnDTO tempSaveInHouse(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo, String channel) throws BizException;


    ApplyRtnDTO completeInHouse(ExtremePovertyApplyDTO applyDto, UserAccountVo accountVo, String channel);


    double saveMemberAssets(MemberAssetsEntity entity, UserAccountVo userAccountVo);


    double deleteMemberAssets(MemberAssetsEntity entity);


    List<String> verifyMemberAssetsList(Map<String, String> familyIdIdcardMap);


    List<String> verifyFamilyMasterNum(Map<String, String> familyIdIdcardMap);


    List<String> verifyCompleteMemberInfo(Map<String, String> familyIdIdcardMap);



    String modifyFamilyHolder(String familyId, String idcard, UserAccountVo accountVo);

    String backupHtml(String orderId,String familyId,String businessCode);

    void verifyFamilyMasterNum(String familyId);

    void verifyCompleteMemberInfo(String familyId);

    void verifyCert(String orderId, String familyId,String channel);

    void verifyExpireCheck(String orderId);

    Map<String, String> gainBankInfo(BankAbutmentDTO dto, UserAccountVo userAccountVo);

    void delete(FamilyMemberDTO dto, UserAccountVo accountVo);

    String addFamilyMember(FamilyMemberDTO dto,UserAccountVo accountVo);

    void  updateFamilyMember(FamilyMemberDTO dto,UserAccountVo accountVo);
    void  updateFamilyMemberAssess(FamilyMemberDTO dto);

    void changeMemberApply(String familyId, String orderId, Map<String,String> relationshipMap,UserAccountVo accountVo);

    int houseHoldSuspend(String orderId,String familyId);

    void verifyOrderNoReason(String orderId);
}
